//#include "ObjectPool.h"
//#include "ConcurrentAlloc.h"
//
//void TestTLS()
//{
//	std::vector<std::thread> vts(5);
//	for (size_t i = 0; i < vts.size(); i++)
//	{
//		vts[i] = std::thread([]() {
//			ConcurrentAlloc(6);
//		});
//	}
//
//	for (size_t i = 0; i < vts.size(); i++)
//	{
//		vts[i].join();
//	}
//}
//
//void Test1()
//{
//	for (int i = 0; i < 5; i++)
//	{
//		ConcurrentAlloc(6);
//	}
//}
//
//void Test2()
//{
//	std::vector<std::thread> vths(150);
//	for (int i = 0; i < vths.size(); i++)
//	{
//		vths[i] = std::thread([]() {
//			ConcurrentAlloc(116);
//		});
//	}
//
//	for (int i = 0; i < vths.size(); i++)
//	{
//		vths[i].join();
//	}
//}
//
//void Routine()
//{
//	const int N = 2;
//	std::vector<void*> vp;
//	for (int i = 0; i < N; i++)
//	{
//		void* p = ConcurrentAlloc(1024*8*512);
//		vp.push_back(p);
//	}
//
//	for (int i = 0; i < N; i++)
//	{
//		ConcurrentDealloc(vp[i]);
//	}
//}
//
//void Test3()
//{
//	std::vector<std::thread> vths(15);
//	for (int i = 0; i < vths.size(); i++)
//	{
//		vths[i] = std::thread(Routine);
//	}
//
//	for (int i = 0; i < vths.size(); i++)
//	{
//		vths[i].join();
//	}
//}
//
//int main()
//{
//	//TestObjectPool();
//	//TestTLS();
//	//Test1();
//	//Test2();
//	Test3();
//	return 0;
//}